#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<stdlib.h>
int main()
{
    // int ret =fork();
    // if(ret <0)
    // {
    //     perror("fork");
    //     return 1;
    // }
    // else if(ret ==0)
    // {
    //     //child
    //      printf("child: %d,ret =%d\n",getpid(),ret);
    // }else
    // {
    //         printf("father: %d,ret =%d\n",getpid(),ret);
    // }

    // sleep(1);
    // return 0;
    // printf("i an running\n");
    // sleep(100);
    // return 0;

    // pid_t id =fork();
    // if(id <0)
    // {
    //     perror("fork ");
    //     return -1;
    // }else if(id ==0)
    // {
    //     printf("child is begin%d  %d  %d\n",getpid(),getppid(),id);
    //     sleep(30);
    //     exit(EXIT_SUCCESS);
    // }else
    // {
    //     printf("parent is sleep...%d  %d  %d\n",getpid(),getppid(),id);
    //     sleep(5);

    // }
    
    // pid_t id =fork();
    // if(id <0)
    // {
    //     perror("fork ");
    //     return 1;
    // }else if(id ==0)
    // {
    //     printf("i am child pid:%d ppid:%d",getpid(),getppid());
    //     sleep(10);
        
    // }else
    // {
    //             printf("i am parent pid:%d ppid:%d",getpid(),getppid());

    //     sleep(3);
    //     exit(0);
    // }
    printf("I am running...\n");
	pid_t id = fork();
	if(id == 0){ //child
		int count = 5;
		while(count){
			printf("I am child...PID:%d, PPID:%d, count:%d\n", getpid(), getppid(), count);
			sleep(1);
			count--;
		}
		printf("child quit...\n");
		exit(1);
	}
	else if(id > 0){ //father
		while(1){
			printf("I am father...PID:%d, PPID:%d\n", getpid(), getppid());
			sleep(1);
		}
	}
	else{ //fork error
	}
	return 0;
} 
